package com.tedu.api.date;

import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode;

import java.util.Calendar;
import java.util.Date;

/**Java.util包
 * Calendar抽象类替换Date（设计缺陷）     使用格里高利历法:公历
 * 替换方法：
 * 1.时间计算分量：根据毫秒数换算时间分量:年,月,日，时分秒
 * 2.设计时间分量：修改年，月，日，时分秒，底层用毫秒进行计算结果
 * 3.增加/减少时间分量：增加/减少指定毫秒数
 */
public class CalendarAPI {
    public static void main(String[] args) {
        //抽象类---匿名内部类【提供静态方法替代new，这个静态方法封装new功能】
        Calendar cl = Calendar.getInstance();
        //获取年月日     get方法：获取年月日  时分秒
        int year= cl.get(Calendar.YEAR); //get方法中传入 静态属性
        int month= cl.get(Calendar.MONTH)+1; //获取月
        int date=cl.get(Calendar.DATE);//获取日
        System.out.println("当前年份："+year+"月"+month+"日"+date);
        int hour= cl.get(Calendar.HOUR); //获取时
        int minute= cl.get(Calendar.MINUTE); //获取分
        int second= cl.get(Calendar.SECOND); //获取秒
        //快速格式化代码快捷键：ctrl+alt+l

        //设置时间分量:set(修改时间，绝对时间）方法  底层使用毫秒数
        //需求:当前时间调整为明年的今天
        cl.set(Calendar.YEAR,2025);
        Date d=cl.getTime();//获取时间，返回值Date类
        System.out.println("明年的今天："+d);
        //需求:获取2023的今天【通过第三个增加减少时间毫秒数计算】
        //add方法（改变时间，相对时间）
        cl.add(Calendar.YEAR,-1);
        d=cl.getTime();
        System.out.println("去年的今天："+d);
        //获取当前月份总天数【最大天数】
        int max=cl.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("月份最大天数："+max);

    }
}